home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / dtrexc.z / dtrexc
Text File  |  1998-10-30  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. DDDDTTTTRRRREEEEXXXXCCCC((((3333FFFF))))                                                          DDDDTTTTRRRREEEEXXXXCCCC((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DTREXC - reorder the real Schur factorization of a real matrix A =
  10.      Q*T*Q**T, so that the diagonal block of T with row index IFST is moved to
  11.      row ILST
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE DTREXC( COMPQ, N, T, LDT, Q, LDQ, IFST, ILST, WORK, INFO )
  15.  
  16.          CHARACTER      COMPQ
  17.  
  18.          INTEGER        IFST, ILST, INFO, LDQ, LDT, N
  19.  
  20.          DOUBLE         PRECISION Q( LDQ, * ), T( LDT, * ), WORK( * )
  21.  
  22. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  23.      DTREXC reorders the real Schur factorization of a real matrix A =
  24.      Q*T*Q**T, so that the diagonal block of T with row index IFST is moved to
  25.      row ILST.
  26.  
  27.      The real Schur form T is reordered by an orthogonal similarity
  28.      transformation Z**T*T*Z, and optionally the matrix Q of Schur vectors is
  29.      updated by postmultiplying it with Z.
  30.  
  31.      T must be in Schur canonical form (as returned by DHSEQR), that is, block
  32.      upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2
  33.      diagonal block has its diagonal elements equal and its off-diagonal
  34.      elements of opposite sign.
  35.  
  36.  
  37. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  38.      COMPQ   (input) CHARACTER*1
  39.              = 'V':  update the matrix Q of Schur vectors;
  40.              = 'N':  do not update Q.
  41.  
  42.      N       (input) INTEGER
  43.              The order of the matrix T. N >= 0.
  44.  
  45.      T       (input/output) DOUBLE PRECISION array, dimension (LDT,N)
  46.              On entry, the upper quasi-triangular matrix T, in Schur Schur
  47.              canonical form.  On exit, the reordered upper quasi-triangular
  48.              matrix, again in Schur canonical form.
  49.  
  50.      LDT     (input) INTEGER
  51.              The leading dimension of the array T. LDT >= max(1,N).
  52.  
  53.      Q       (input/output) DOUBLE PRECISION array, dimension (LDQ,N)
  54.              On entry, if COMPQ = 'V', the matrix Q of Schur vectors.  On
  55.              exit, if COMPQ = 'V', Q has been postmultiplied by the orthogonal
  56.              transformation matrix Z which reorders T.  If COMPQ = 'N', Q is
  57.              not referenced.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDTTTTRRRREEEEXXXXCCCC((((3333FFFF))))                                                          DDDDTTTTRRRREEEEXXXXCCCC((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      LDQ     (input) INTEGER
  75.              The leading dimension of the array Q.  LDQ >= max(1,N).
  76.  
  77.      IFST    (input/output) INTEGER
  78.              ILST    (input/output) INTEGER Specify the reordering of the
  79.              diagonal blocks of T.  The block with row index IFST is moved to
  80.              row ILST, by a sequence of transpositions between adjacent
  81.              blocks.  On exit, if IFST pointed on entry to the second row of a
  82.              2-by-2 block, it is changed to point to the first row; ILST
  83.              always points to the first row of the block in its final position
  84.              (which may differ from its input value by +1 or -1).  1 <= IFST
  85.              <= N; 1 <= ILST <= N.
  86.  
  87.      WORK    (workspace) DOUBLE PRECISION array, dimension (N)
  88.  
  89.      INFO    (output) INTEGER
  90.              = 0:  successful exit
  91.              < 0:  if INFO = -i, the i-th argument had an illegal value
  92.              = 1:  two adjacent blocks were too close to swap (the problem is
  93.              very ill-conditioned); T may have been partially reordered, and
  94.              ILST points to the first row of the current position of the block
  95.              being moved.
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.